一、 SSL介紹
安全套接層(Secure Sockets Layer,SSL)是網景公司(Netscape)在推出Web瀏覽器首版的同時,提出的協議。SSL採用公開密鑰技術,保證兩個應用間通信的保密性和可靠性,使客戶與伺服器應用之間的通信不被攻擊者竊聽。可在伺服器和客戶機兩端同時實現支持,目前已成為網際網路上保密通訊的工業標準,現行Web瀏覽器亦普遍將Http和SSL相結合,從而實現安全通信。此協議和其繼任者傳輸層安全(Transport Layer Security,TLS)是為網路通信提供安全及數據完整性的一種安全協議。TLS與SSL在傳輸層對網路連接進行加密。
二、 SSL設定說明
安裝SSL時,openssl 一定要安裝最新版本,stable版本。(請依當時的最新版本安裝)
SSL 官網 查最新的SSL http://www.openssl.org/source/
完成以上軟體的安裝後, 我們便可開始進行憑證申請及安裝, 其程序大致如下:
安裝OPENSSL
[root@localhost ~]# wget http://www.openssl.org/source/openssl-0.9.8q.tar.gz [root@localhost ~]# tar zxvf openssl-0.9.8q.tar.gz
[root@localhost ~]# cd openssl-0.9.8q
[root@localhost ~]# ./config
[root@localhost ~]# make
[root@localhost ~]# make install
設定OpenSSL 設定檔的位置
2.1 先把要用的資料夾建立好
[root@localhost ~]# mysql -u root -p cacti < pa.sql
[root@localhost ~]# mkdir /etc/ssl
[root@localhost ~]# cp /etc/pki/tls/openssl.cnf /etc/ssl/.
[root@localhost ~]# cd /etc/ssl
[root@localhost ~]# mkdir private
[root@localhost ~]# mkdir certs
[root@localhost ~]# mkdir crl
[root@localhost ~]# mkdir newcerts
[root@localhost ~]# touch index.txt
[root@localhost ~]# export OPENSSL_CONF="/etc/ssl/openssl.cnf"
2.2 修改openssl.cnf設定
[root@localhost ~]# vi /etc/ssl/openssl.cnf
#把這行
dir = ../../CA # Where everything is kept
#改為
dir = /etc/ssl # Where everything is kept
#把這行
countryName_default = GB
#改為
countryName_default = TW
2.3 把 OpenSSL 設定檔的位置加進 .bashrc 中
[root@localhost ~]# echo "export OPENSSL_CONF=\"/etc/ssl/openssl.cnf\"" >> ~/.bashrc
2.4 產生亂數的檔案
[root@localhost ~]# openssl rand 1024 > /etc/ssl/private/.rand
[root@localhost ~]# chmod og-rwx /etc/ssl/private/.rand
以上準備好後,可以開始製作Root CA
製作Root CA
退出 shell 重新登入root
我們要做的Root CA 為winners.ca ,如果之前有做過的話,現在再做一次,之前簽的憑證都會失效。
3.1 建立憑證密碼
[root@localhost ~]# openssl genrsa -des3 -out /etc/ssl/private/faq.ca.key 1024
#此時必須為最高層認證中心的 Private Key 設定一個適當的密碼,以後在用這把Private Key簽發#其它憑證時,都需要用到這個密碼。
#參數說明:
genrsa 表示使用 RSA 演算法產製金鑰\r
-des3 表示使用 DES3 加密演算法
-out mykeys.key 表示輸出的檔案為何, 檔名及路徑可自定
1024 表示金鑰對長度為 1024 (建議使用)
% 您可以另外使用 openssl genrsa ? 看其全部的參數\r
Enter PEM pass phrase: (請在此輸入金鑰對密碼)
[root@localhost ~]# chmod og-rwx /etc/ssl/private/faq.ca.key
3.2 接著填寫憑證申請
跟誰申請?因為是Root CA ,沒有上級了,所以就是跟自己申請。
[root@localhost ~]# openssl req -new -key /etc/ssl/private/faq.ca.key -out /tmp/faq.ca.req
#參數說明:
req 表示要產生 CSR 檔
-new 新的檔案
-key mykeys.key 金鑰對檔案的路徑及檔名
-out mysite.key 所產生的 CSR 檔案的路徑及檔名
接著, 會出現 Enter PEM pass phrase: (請輸入先前設定好的密碼)
3.3 填入資料
Country Name (2 letter code) [TW]:TW #請用兩個英文字元表示
State or Province Name (full name) [Taiwan]:Taiwan #省份名稱
Locality Name (eg, city) [Newbury]:Taipei #城市名稱
Organization Name (eg, company) [My Company Ltd]:FAQ-BOOK #(公司名稱)
Organizational Unit Name (eg, section) []:CA #部門名稱
Common Name (eg, your name or your server's hostname) []:blog.faq-book.com
#網址名稱, 即公用名稱, 您要使用 SSL 加密的站台名稱
Email Address []:derek@faq-book.com #網站管理者的email address
此外, 尚有一些 extra 的資料, 您可不理會, 直接按 Enter 過去即可, 最後即可產生 faq.ca.crt 檔
3.4 自己給自己簽名
[root@localhost ~]# openssl x509 -req -days 7305 -sha1 \-extfile /etc/ssl/openssl.cnf -extensions v3_ca \-signkey /etc/ssl/private/faq.ca.key \-in /tmp/faq.ca.req -out /etc/ssl/certs/faq.ca.crt
3.5 刪除憑證申請書
[root@localhost ~]# rm -f /tmp/faq.ca.req
SSL憑證設定(下)
全文同步於FAQ-BOOK
IT鐵人文章分享